<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>修改密码</title>
    <meta name="renderer" content="webkit">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <link rel="stylesheet" href="../lib/layui-v2.5.5/css/layui.css" media="all">
    <link rel="stylesheet" href="../css/public.css" media="all">
    <style>
        .layui-form-item .layui-input-company {width: auto;padding-right: 10px;line-height: 38px;}
    </style>
</head>
<body>
<div class="layuimini-container">
    <div class="layuimini-main">

        <div class="layui-form layuimini-form">
            <div class="layui-form-item">
                <label class="layui-form-label required">旧密码</label>
                <div class="layui-input-block">
                    <input type="password" name="old_password" lay-verify="required" lay-affix="eye" lay-reqtext="旧密码不能为空" placeholder="请输入旧的密码"  value="" class="layui-input">
                    <tip>填写自己账号的旧的密码。</tip>
                </div>
            </div>

            <div class="layui-form-item">
                <label class="layui-form-label required">新密码</label>
                <div class="layui-input-block">
                    <input type="password" name="new_password" lay-verify="required|password" lay-affix="eye" lay-reqtext="新密码不能为空" placeholder="请输入新的密码"  value="" class="layui-input">
                </div>
            </div>
            <div class="layui-form-item">
                <label class="layui-form-label required">重复新密码</label>
                <div class="layui-input-block">
                    <input type="password" name="again_password" lay-verify="required|password" lay-affix="eye" lay-reqtext="重复新密码不能为空" placeholder="请输入新的密码"  value="" class="layui-input">
                </div>
            </div>

            <div class="layui-form-item">
                <div class="layui-input-block">
                    <button class="layui-btn layui-btn-normal" lay-submit lay-filter="saveBtn">确认保存</button>
                </div>
            </div>
        </div>
    </div>
</div>
<script src="../lib/layui-v2.5.5/layui.js" charset="utf-8"></script>
<script src="../js/lay-config.js?v=1.0.4" charset="utf-8"></script>
<script src="../js/common.js?v=2.0.3" charset="utf-8"></script>
<script>
    layui.use(['form','miniTab'], function () {
        var $ = layui.jquery,
            form = layui.form,
            layer = layui.layer,
            miniTab = layui.miniTab;

        // 自定义验证规则
        form.verify({
            // 验证密码，且为必填项
            password: function(value, elem) {
                if (!/^[\S]{8,20}$/.test(value)) {
                    return '密码必须为8到20位的非空字符';
                }
                if (/^\d+$/.test(value)) {
                    return '密码不能全为数字';
                }
                if (!((/[a-z]/.test(value) && /[A-Z]/.test(value)) || 
                    (/[a-z]/.test(value) && /\d/.test(value)) || 
                    (/[a-z]/.test(value) && /[^\w\s]/.test(value)) || 
                    (/[A-Z]/.test(value) && /\d/.test(value)) || 
                    (/[A-Z]/.test(value) && /[^\w\s]/.test(value)) || 
                    (/\d/.test(value) && /[^\w\s]/.test(value)))) {
                    return '密码必须包含大小写字母、数字和特殊符号中的两种及以上';
                }
            },
        
        });

        //监听提交
        form.on('submit(saveBtn)', function (data) {
            let old_password = data.field.old_password;
            let new_password = data.field.new_password;
            let again_password = data.field.again_password;
            let username = localStorage.getItem(userName);

            if (old_password == new_password) {
                layer.msg('新密码不能与旧密码相同！');
                return false;
            }

            if (new_password != again_password) {
                layer.msg('两次输入的密码不一致！请重新输入');
                return false;
            }

            $.ajax({
                url: serverApiUrl + "/auth/update_password",
                type: "post",
                contentType: "application/json",
                headers: {'Authorization': 'Bearer ' + localStorage.getItem(tokenKey)},
                data: JSON.stringify({username: username, old_password: old_password, new_password: new_password}),
                success: function(response) {
                    layer.msg('修改成功', function () {
                        window.location = '../login.html';
                    });
                },
                error: function(xhr) {
                    var error = JSON.parse(xhr.responseText);

                    layer.msg('修改失败', function () {
                        
                    });
                }
            });

        });

    });
</script>
</body>
</html>